﻿using BLL.Access;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

using BLL;
using DevExpress.Web;
using Entity;
using System.Web.UI;
using Web.Class;
using System.Text;

namespace Web
{
    /// <summary>
    /// Handler1 的摘要说明
    /// </summary>
    public class Handler1 : IHttpHandler
    {
        SpHelper _SpHelper = new SpHelper();

        //public static string CreateJsonParameters(DataTable dt)
        //{
        //    StringBuilder JsonString = new StringBuilder();
        //    if (dt != null && dt.Rows.Count > 0)
        //    {
        //        JsonString.Append("{ ");
        //        JsonString.Append("\"Result_List\":[ ");
        //        for (int i = 0; i < dt.Rows.Count; i++)
        //        {
        //            JsonString.Append("{ ");
        //            for (int j = 0; j < dt.Columns.Count; j++)
        //            {
        //                if (j < dt.Columns.Count - 1)
        //                {
        //                    JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
        //                }
        //                else if (j == dt.Columns.Count - 1)
        //                {
        //                    JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
        //                }
        //            }
        //            if (i == dt.Rows.Count - 1)
        //            {
        //                JsonString.Append("} ");
        //            }
        //            else
        //            {
        //                JsonString.Append("}, ");
        //            }
        //        }
        //        JsonString.Append("]}");
        //        return JsonString.ToString();
        //    }
        //    else
        //    {
        //        return null;
        //    }
        //}

        public string DataTableToJsonWithJavaScriptSerializer(DataTable table)
        {
            JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
            jsSerializer.MaxJsonLength = Int32.MaxValue;
            List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
            Dictionary<string, object> childRow;
            //foreach (DataRow row in table.Rows)
            for (int i = 0; i < 10000; ++i)
            {
                DataRow row = table.Rows[i];
                childRow = new Dictionary<string, object>();
                foreach (DataColumn col in table.Columns)
                {
                    childRow.Add(col.ColumnName, row[col]);
                }
                parentRow.Add(childRow);
            }
            return jsSerializer.Serialize(parentRow);
        }
        //public string DataTableToJson(System.Data.DataTable dt)
        //{
        //    if (dt.Rows.Count <= 0)
        //    {
        //        return "";
        //    }
        //    StringBuilder jsonBuilder = new StringBuilder();
        //    jsonBuilder.Append("[");
        //    for (int i = 1; i < dt.Rows.Count; i++)
        //    {
        //        jsonBuilder.Append("{");
        //        for (int j = 0; j < dt.Columns.Count; j++)
        //        {
        //            jsonBuilder.Append("\"");
        //            jsonBuilder.Append(dt.Columns[j].ColumnName);
        //            jsonBuilder.Append("\":\"");
        //            jsonBuilder.Append(dt.Rows[i][j].ToString());
        //            jsonBuilder.Append("\",");
        //        }
        //        jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
        //        jsonBuilder.Append("},");
        //    }
        //    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
        //    jsonBuilder.Append("]");

        //    return jsonBuilder.ToString();
        //}

        public void ProcessRequest(HttpContext context)
        {

            string type = context.Request["type"];
            
            if (type == "ShowWaterData")
            {
                //this.dtYueChaoBQKTab1 = SpHelper.P_YSCX_ZLSGSSJCX_YCBCX(sCbbm, sXzq, i_y, i_m, sKhlx, v_b, constr, sYsl).Tables[0];
                DataTable list = _SpHelper.P_YSCX_ZLSGSSJCX_YCBCX("全部", "全部","全部", 2019, 2, "全部", -1, "", "").Tables[0];


                //List<Entity.YS_CB_ZILAISGSSJ_Model> list = Entity.YS_CB_ZILAISGSSJ_BLL.ShowWaterData();
                //JavaScriptSerializer jser = new JavaScriptSerializer();
                string listjson = DataTableToJsonWithJavaScriptSerializer(list);
                //string listjson = DataTableToJson(list);
               // string listjson = CreateJsonParameters(list); 
                context.Response.Write(listjson);
            }
        }
     



    public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}